A JAVA virtual machine is a process virtual machine that can execute JAVA bytecode. The JVM has a system to handle errors called Exceptions. Exceptions can detect errors and react to situations where errors are detected. However, Exceptions do not allow for an application, and specifically objects in the application, to return to a state before the error occurred.